import { formateDateTimeNew, formatUnit, formatNumber2String } from './format';
import type { ConfigItem } from '@/types/tester';
import { unitMap } from '@/config';

// 参考电压获取方式
const voltageMap = {
  '0x01': '二次电压法',
  '0x02': '检修电源法',
  '0x03': '感应板法',
  '0x04': '末屏电流法',
};

// 测试方式
const testMethodMap = {
  '0x01': '无补偿',
  '0x02': '补偿',
};

// 作业类型
const jobTypeMap = {
  '0x01': '带电检测',
  '0x02': '停电试验',
};

export const lightningConfig: ConfigItem[] = [
  {
    label: '测试时间',
    key: 'datetime',
    start: 0,
    length: 7,
    dataType: 'unit8',
    format: formateDateTimeNew,
    serverKey: 'monitorTime',
  },
  {
    label: '环境温度',
    key: 'ambientTemperature',
    start: 0,
    length: 0,
    dataType: 'char',
    serverKey: 'ambientTemperature',
    editable: true,
    editType: 'input',
    unit: unitMap['0x11'],
  },
  {
    label: '空气湿度',
    key: 'airHumidity',
    start: 0,
    length: 0,
    dataType: 'char',
    serverKey: 'airHumidity',
    editable: true,
    editType: 'input',
    unit: unitMap['0x08'],
  },
  {
    label: '备注',
    key: 'remark',
    start: 0,
    length: 0,
    dataType: 'char',
    serverKey: 'remark',
    editable: true,
    editType: 'input',
  },
  {
    label: '预警提示',
    key: 'warnPrompt',
    start: 0,
    length: 0,
    dataType: 'char',
    serverKey: 'warnPrompt',
    hide: true,
    hideInHistory: false,
  },
  {
    label: 'A相 Ix',
    key: 'aIx',
    start: 7,
    length: 4,
    dataType: 'float',
    precision: 2,
    readUnit: 'ixUnit',
    serverKey: 'aCompleteVirtual',
    serverUnit: unitMap['0x09'],
    serverFormat: (value) => formatNumber2String(value as number),
  },
  {
    label: 'A相 Irp',
    key: 'aIrp',
    start: 11,
    length: 4,
    dataType: 'float',
    precision: 2,
    readUnit: 'irpUnit',
    serverKey: 'aResistancePeak',
    serverUnit: unitMap['0x09'],
    serverFormat: (value) => formatNumber2String(value as number),
  },
  {
    label: 'A相 Ir',
    key: 'aIr',
    start: 15,
    length: 4,
    dataType: 'float',
    precision: 2,
    readUnit: 'irUnit',
    serverKey: 'aResistanceVirtual',
    serverUnit: unitMap['0x09'],
  },
  {
    label: 'A相相位角',
    key: 'aPhase',
    start: 19,
    length: 4,
    dataType: 'float',
    unit: unitMap['0x2E'],
    precision: 2,
    serverKey: 'aPhaseAngle',
    serverFormat: (value) => formatNumber2String(value as number),
  },
  {
    label: 'B相Ix',
    key: 'bIx',
    start: 23,
    length: 4,
    dataType: 'float',
    precision: 2,
    readUnit: 'ixUnit',
    serverKey: 'bCompleteVirtual',
    serverUnit: unitMap['0x09'],
    serverFormat: (value) => formatNumber2String(value as number),
  },
  {
    label: 'B相 Irp',
    key: 'bIrp',
    start: 27,
    length: 4,
    dataType: 'float',
    precision: 2,
    readUnit: 'irpUnit',
    serverKey: 'bResistancePeak',
    serverUnit: unitMap['0x09'],
    serverFormat: (value) => formatNumber2String(value as number),
  },
  {
    label: 'B相 Ir',
    key: 'bIr',
    start: 31,
    length: 4,
    dataType: 'float',
    precision: 2,
    readUnit: 'irUnit',
    serverKey: 'bResistanceVirtual',
    serverUnit: unitMap['0x09'],
  },
  {
    label: 'B相相位角',
    key: 'bPhase',
    start: 35,
    length: 4,
    dataType: 'float',
    precision: 2,
    unit: unitMap['0x2E'],
    serverKey: 'bPhaseAngle',
    serverFormat: (value) => formatNumber2String(value as number),
  },
  {
    label: 'C相Ix',
    key: 'cIx',
    start: 39,
    length: 4,
    dataType: 'float',
    precision: 2,
    readUnit: 'ixUnit',
    serverKey: 'cCompleteVirtual',
    serverUnit: unitMap['0x09'],
    serverFormat: (value) => formatNumber2String(value as number),
  },
  {
    label: 'C相Irp',
    key: 'cIrp',
    start: 43,
    length: 4,
    dataType: 'float',
    precision: 2,
    readUnit: 'irpUnit',
    serverKey: 'cResistancePeak',
    serverUnit: unitMap['0x09'],
    serverFormat: (value) => formatNumber2String(value as number),
  },
  {
    label: 'C相Ir',
    key: 'cIr',
    start: 47,
    length: 4,
    dataType: 'float',
    precision: 2,
    readUnit: 'irUnit',
    serverKey: 'cResistanceVirtual',
    serverUnit: unitMap['0x09'],
  },
  {
    label: 'C相相位角',
    key: 'cPhase',
    start: 51,
    length: 4,
    dataType: 'float',
    precision: 2,
    unit: unitMap['0x2E'],
    serverKey: 'cPhaseAngle',
    serverFormat: (value) => formatNumber2String(value as number),
  },
  {
    label: 'Ix单位',
    key: 'ixUnit',
    start: 55,
    length: 1,
    dataType: 'unit8',
    format: formatUnit,
    hide: true,
  },
  {
    label: 'Irp单位',
    key: 'irpUnit',
    start: 56,
    length: 1,
    dataType: 'unit8',
    format: formatUnit,
    hide: true,
  },
  {
    label: 'Ir单位',
    key: 'irUnit',
    start: 57,
    length: 1,
    dataType: 'unit8',
    format: formatUnit,
    hide: true,
  },
  {
    label: '电压获取方式',
    key: 'voltage',
    start: 58,
    length: 1,
    dataType: 'unit8',
    format: value => formatUnit(value, voltageMap),
    serverKey: 'voltageObtainMode'
  },
  {
    label: '测试方式',
    key: 'testMethod',
    start: 59,
    length: 1,
    dataType: 'unit8',
    format: value => formatUnit(value, testMethodMap),
    serverKey: 'phaseCompensateMode'
  },
  {
    label: 'A相补偿角度',
    key: 'aCompensate',
    start: 60,
    length: 4,
    dataType: 'float',
    unit: unitMap['0x2E'],
    serverKey: 'aCompensateAngle',
  },
  {
    label: 'B相补偿角度',
    key: 'bCompensate',
    start: 64,
    length: 4,
    dataType: 'float',
    unit: unitMap['0x2E'],
    serverKey: 'bCompensateAngle'
  },
  {
    label: 'C相补偿角度',
    key: 'cCompensate',
    start: 68,
    length: 4,
    dataType: 'float',
    unit: unitMap['0x2E'],
    serverKey: 'cCompensateAngle'
  },
  {
    label: '作业类型',
    key: 'workType',
    start: 72,
    length: 1,
    dataType: 'unit8',
    format: value => formatUnit(value, jobTypeMap),
    serverKey: 'jobType',
  },
  // {
  //   label: 'A相Ixp',
  //   key: 'aCompletePeak',
  //   length: 4,
  //   start: 73,
  //   dataType: 'float',
  //   serverKey: 'aCompletePeak',
  // },
  // {
  //   label: 'A相Ir1',
  //   key: 'aResistanceFundVirtual',
  //   length: 4,
  //   start: 77,
  //   dataType: 'float',
  //   readUnit: 'ir1Unit',
  //   serverKey: 'aResistanceFundVirtual',
  // },
  // {
  //   label: 'A相Ir1p',
  //   key: 'aResistanceFundPeak',
  //   length: 4,
  //   start: 81,
  //   dataType: 'float',
  //   readUnit: 'ir1pUnit',
  //   serverKey: 'aResistanceFundPeak',
  // },
  // {
  //   label: 'A相Ir3',
  //   key: 'aResistanceHarmVirtual',
  //   length: 4,
  //   start: 85,
  //   dataType: 'float',
  //   readUnit: 'ir3Unit',
  //   serverKey: 'aResistanceHarmVirtual',
  // },
  // {
  //   label: 'A相Ir3p',
  //   key: 'aResistanceHarmPeak',
  //   length: 4,
  //   start: 89,
  //   dataType: 'float',
  //   readUnit: 'ir3pUnit',
  //   serverKey: 'aResistanceHarmPeak',
  // },
  // {
  //   label: 'A相Ic',
  //   key: 'aIc',
  //   length: 4,
  //   start: 93,
  //   dataType: 'float',
  //   readUnit: 'icUnit',
  //   serverKey: 'aCapacitiveVirtual',
  // },
  // {
  //   label: 'A相参考电压',
  //   key: 'aRefVoltage',
  //   length: 4,
  //   start: 97,
  //   dataType: 'float',
  //   readUnit: 'refVoltageUnit',
  //   serverKey: 'aRefVoltageVirtual',
  // },
  // {
  //   label: 'A相有功功率',
  //   key: 'aActivePower',
  //   length: 4,
  //   start: 101,
  //   dataType: 'float',
  //   unit: unitMap['0x02'],
  //   serverKey: 'aActivePower',
  // },
  // {
  //   label: 'B相Ixp',
  //   key: 'bIxp',
  //   length: 4,
  //   start: 105,
  //   dataType: 'float',
  //   serverKey: 'bCompletePeak',
  // },
  // {
  //   label: 'B相Ir1',
  //   key: 'bIr1',
  //   length: 4,
  //   start: 109,
  //   dataType: 'float',
  //   readUnit: 'ir1Unit',
  //   serverKey: 'bResistanceFundVirtual',
  // },
  // {
  //   label: 'B相Ir1p',
  //   key: 'bIr1p',
  //   length: 4,
  //   start: 113,
  //   dataType: 'float',
  //   readUnit: 'ir1pUnit',
  //   serverKey: 'bResistanceFundPeak',
  // },
  // {
  //   label: 'B相Ir3',
  //   key: 'bIr3',
  //   length: 4,
  //   start: 117,
  //   dataType: 'float',
  //   readUnit: 'ir3Unit',
  //   serverKey: 'bResistanceHarmVirtual',
  // },
  // {
  //   label: 'B相Ir3p',
  //   key: 'bIr3p',
  //   length: 4,
  //   start: 121,
  //   dataType: 'float',
  //   readUnit: 'ir3pUnit',
  //   serverKey: 'bResistanceHarmPeak',
  // },
  // {
  //   label: 'B相Ic',
  //   key: 'bIc',
  //   length: 4,
  //   start: 125,
  //   dataType: 'float',
  //   readUnit: 'icUnit',
  //   serverKey: 'bCapacitiveVirtual',
  // },
  // {
  //   label: 'B相参考电压',
  //   key: 'bRefVoltage',
  //   length: 4,
  //   start: 129,
  //   dataType: 'float',
  //   readUnit: 'refVoltageUnit',
  //   serverKey: 'bRefVoltageVirtual',
  // },
  // {
  //   label: 'B相有功功率',
  //   key: 'bActivePower',
  //   length: 4,
  //   start: 133,
  //   dataType: 'float',
  //   unit: unitMap['0x02'],
  //   serverKey: 'bActivePower',
  // },
  // {
  //   label: 'C相Ixp',
  //   key: 'cIxp',
  //   length: 4,
  //   start: 137,
  //   dataType: 'float',
  //   serverKey: 'cCompletePeak',
  // },
  // {
  //   label: 'C相Ir1',
  //   key: 'cIr1',
  //   length: 4,
  //   start: 141,
  //   dataType: 'float',
  //   readUnit: 'ir1Unit',
  //   serverKey: 'cResistanceFundVirtual',
  // },
  // {
  //   label: 'C相Ir1p',
  //   key: 'cIr1p',
  //   length: 4,
  //   start: 145,
  //   dataType: 'float',
  //   readUnit: 'ir1pUnit',
  //   serverKey: 'cResistanceFundPeak',
  // },
  // {
  //   label: 'C相Ir3',
  //   key: 'cIr3',
  //   length: 4,
  //   start: 149,
  //   dataType: 'float',
  //   readUnit: 'ir3Unit',
  //   serverKey: 'cResistanceHarmVirtual',
  // },
  // {
  //   label: 'C相Ir3p',
  //   key: 'cIr3p',
  //   length: 4,
  //   start: 153,
  //   dataType: 'float',
  //   readUnit: 'ir3pUnit',
  //   serverKey: 'cResistanceHarmPeak',
  // },
  // {
  //   label: 'C相Ic',
  //   key: 'cIc',
  //   length: 4,
  //   start: 157,
  //   dataType: 'float',
  //   readUnit: 'icUnit',
  //   serverKey: 'cCapacitiveVirtual',
  // },
  // {
  //   label: 'C相参考电压',
  //   key: 'cRefVoltage',
  //   length: 4,
  //   start: 161,
  //   dataType: 'float',
  //   readUnit: 'refVoltageUnit',
  //   serverKey: 'cRefVoltageVirtual',
  // },
  // {
  //   label: 'C相有功功率',
  //   key: 'cActivePower',
  //   length: 4,
  //   start: 165,
  //   dataType: 'float',
  //   unit: unitMap['0x02'],
  //   serverKey: 'cActivePower',
  // },
  // {
  //   label: 'Ir1单位',
  //   key: 'ir1Unit',
  //   length: 1,
  //   start: 169,
  //   dataType: 'unit8',
  //   format: formatUnit,
  //   hide: true,
  // },
  // {
  //   label: 'Ir1p单位',
  //   key: 'ir1pUnit',
  //   length: 1,
  //   start: 170,
  //   dataType: 'unit8',
  //   format: formatUnit,
  //   hide: true,
  // },
  // {
  //   label: 'Ir3单位',
  //   key: 'ir3Unit',
  //   length: 1,
  //   start: 171,
  //   dataType: 'unit8',
  //   format: formatUnit,
  //   hide: true,
  // },
  // {
  //   label: 'Ir3p单位',
  //   key: 'ir3pUnit',
  //   length: 1,
  //   start: 172,
  //   dataType: 'unit8',
  //   format: formatUnit,
  //   hide: true,
  // },
  // {
  //   label: 'Ic单位',
  //   key: 'icUnit',
  //   length: 1,
  //   start: 173,
  //   dataType: 'unit8',
  //   format: formatUnit,
  //   hide: true,
  // },
  // {
  //   label: '参考电压单位',
  //   key: 'refVoltageUnit',
  //   length: 1,
  //   start: 174,
  //   dataType: 'unit8',
  //   format: formatUnit,
  //   hide: true,
  // },
];
